﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Sistema_Bancario.Controllers
{
    public abstract class Cuenta
    {
        

        protected String numeroDeCuenta;
        protected float saldo;
        protected Cliente propietarioDelaCuenta;

        public String numDeCuenta
        {
            get { return this.numeroDeCuenta; }
        }

        public float saldoEnCuenta
        {
            get { return this.saldo; }
        }

        public String DNIpropietario
        {
            get
            {
                return this.propietarioDelaCuenta.dniCliente;
            }
        }


        public String nombrePropietario
        {
            get
            {
                return this.propietarioDelaCuenta.Nombre;
            }
        }

        public Cliente propietDeLaCuenta
        {
            get { return this.propietarioDelaCuenta; }
        }


        #region CONSTRUCTOR
        public Cuenta(String numeroDeCuenta, Cliente propietarioDelaCuenta)
        {
            this.numeroDeCuenta = numeroDeCuenta;
            this.saldo = 0.0f;
            this.propietarioDelaCuenta = propietarioDelaCuenta;

        }
        #endregion


        #region METODOS ABSTRACTOS
        public abstract void extraerDinero(float montoAExtraer);

        public abstract void depositarDinero(uint montoADepositar);

        public abstract void mostrarInfoDeCuentaConSaldonegativo();

        #endregion

    }
}